<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 函数封装  => 把完成特定功能的某段代码 抽离出来,使之成为一个独立的整体, 给它起一个函数名, 调用函数可以执行函数中的内容

    // 优点:
    // 1. 可以通过函数封装 实现代码的复用
    // 2. 代码都在函数中 维护起来比较方便
    // 3. 提高代码的执行效率

    // 如何封装函数?
    // 1. 先把完成特定功能的代码写出来
    // 2. 把完成特定功能的代码 抽离出来放到函数中 起一个函数名
    // 3. 把可变参数(用于期望可以有自己决定传入的参数)提取为形式参数
    // 4. 设置返回值(返回值可有可无,用于根据自己的需要设置返回值 => 函数执行之后的结果)
    // 5. 调用函数


    // 关于函数的形参和实参
    // 形参: 函数封装过程中的假设性参数 => 局部变量(用于对应接收实际参数)
    // 实参: 函数调用时实际传入的值 
    // 形参和实参一一对应

    // 关于函数的返回值: 
    // 1. 返回值是函数执行完毕后 对外返回的结果
    // 2. 一个函数只能返回一个结果 => 函数遇到return 语句后就会停止 => 后续的代码不在执行
    // 3. 如果不设置返回值,函数默认返回undefined 

    // 关于函数的调用:
    // 1. 每次调用函数 -> 都会重新执行函数的上下文
    // 2. 函数在没有调用时 -> 也是存储在内存当中的 -> 函数名就是对应的变量名 -> 可以通过函数名找到对应的函数





    // 封装一个函数, 传入一个整数 判断是否是素数?

    // var flag = true; //假设是质数/素数(不存在能整除n的数)
    // var n = 9;
    // for (var i = 2; i < n; i++) { // 2 - 8
    //     if (n % i == 0) { //存在能整除它的数  => 合数 => 推翻假设
    //         // console.log(n + "是合数");
    //         flag = false; // 不是素数(合数)
    //         break;
    //     }
    // }
    // if (flag) {
    //     console.log(n + "是质数");
    // } else {
    //     console.log(n + "是合数")
    // }


    // function isSu() {
    //     var flag = true; //假设是质数/素数(不存在能整除n的数)
    //     var n = 9;
    //     for (var i = 2; i < n; i++) { // 2 - 8
    //         if (n % i == 0) { //存在能整除它的数  => 合数 => 推翻假设
    //             // console.log(n + "是合数");
    //             flag = false; // 不是素数(合数)
    //             break;
    //         }
    //     }
    //     if (flag) {
    //         console.log(n + "是质数");
    //     } else {
    //         console.log(n + "是合数")
    //     }
    // }
    // isSu()


    function isSu(n) {
        console.log("n:", n);
        var flag = true; //假设是质数/素数(不存在能整除n的数)
        // var n = 9;
        for (var i = 2; i < n; i++) { // 2 - 8
            if (n % i == 0) { //存在能整除它的数  => 合数 => 推翻假设
                // console.log(n + "是合数");
                flag = false; // 不是素数(合数)
                break;
            }
        }
        return flag;
    }
    var result = isSu(9);  // false 调用函数 => 将函数的执行结果赋值给result
    console.log(result);

    var result = isSu(11);  // 调用函数 => 将函数的执行结果赋值给result
    console.log(result);

    console.log(isSu);






</script>

</html>